// 用来处理友链管理的增删改
const express = require("express");
const router = express.Router();
const linkDB = require("../../database/link.js"); //引入友链管理表规则
const {URL} = require("url"); 

//  添加友链到数据库
router.post("/addData",async (req,res)=>{
  // 数据格式的校验,鉴定格字段是否为空; 鉴定2个url是否符合规则
  let {origin} =  new URL(req.body.home);

  // 根据正则匹配查询home字段值里有没有相同的网站友链
  let linkDoc = await linkDB.findOne({home:new RegExp(origin)}); 

  if(linkDoc) return res.send({code:10, message:"请不要重复添加相同网站下的友链"});
  
  await linkDB.create(req.body);
  res.send({
    code:0,
    message:"添加友链成功",
  });

});

// 修改友链数据
router.post("/update",async (req,res)=>{
  let {_id,name,home,logo,describe} = req.body;
  // 数据校验: 友链id是否存在
  let linkDoc = await linkDB.findById(_id);
  if(!linkDoc) return res.send({code:1, message:"您要修改的这条友链不存在"});
  // 到数据库中修改数据
  await linkDB.findByIdAndUpdate(_id, {name,home,logo,describe});
  res.send({
    code:0,
    message:"友链修改成功"
  });
});

// 删除友链
router.delete("/delete",async (req,res)=>{
  let {_id} = req.body;  // 友链id
  // 数据校验,友链是否存在
  let linkDoc = await linkDB.findById(_id);
  if(!linkDoc) return res.send({code:2, message:"您要删除的友链不存在"})
  
  await linkDB.findByIdAndDelete(_id);
  res.send({
    code:0,
    message:"友链删除成功"
  })


})

// 导出路由
module.exports = router;